package api

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"gvb-server/global"
	"gvb-server/logic"
	"gvb-server/utils"
	"os"
	"path"
)

var PubLogic = logic.LogicGroup.PubLogic

// Roles 权限列表
// @Tags 公共
// @Summary 权限列表
// @Description 权限列表
// @Produce application/json
// @Router /api/pub/:st [get]
// @Success 200 {object} utils.Response
func (P Public) Roles(c *gin.Context) {
	st := c.Param("st")
	if st == "" {
		utils.Fail("", "", c)
		return
	}
	uRs, _ := PubLogic.Roles()
	utils.Success(uRs, "", c)
}

// Departments 部门列表
// @Tags 公共
// @Summary 部门列表
// @Description 部门列表
// @Produce application/json
// @Router /api/pub/:st [get]
// @Success 200 {object} utils.Response
func (P Public) Departments(c *gin.Context) {
	st := c.Param("st")
	if st == "" {
		utils.Fail("", "", c)
		return
	}
	uRs, _ := PubLogic.Departments()
	utils.Success(uRs, "", c)
}

// ImportAny 导入excel/csv
// @Tags 公共
// @Summary 导入用户
// @Description 导入用户
// @Produce application/json
// @Router /api/pub/imp-any [post]
// @Success 200 {object} utils.Response
func (P Public) ImportAny(c *gin.Context) {
	file, err := c.FormFile("file")
	if err != nil {
		utils.Fail("", err.Error(), c)
		return
	}

	fileBash := global.Config.Upload.Path
	filePath := path.Join(fileBash)

	if _, err := os.Stat(filePath); os.IsNotExist(err) {
		// 文件夹不存在，创建文件夹
		err := os.MkdirAll(filePath, os.ModePerm)
		if err != nil {
			fmt.Println("创建文件夹失败：", err)
			utils.Fail("", "创建文件夹失败", c)
			return
		}
	}

	fmt.Println("---------------------- file -----------------------")
	fmt.Println(file)
	fmt.Println(fileBash)
	fmt.Println(filePath)
	res := PubLogic.UploadExcel(file, c, fileBash, filePath)
	if res.Status == utils.ERROR {
		utils.Fail("", res.Msg, c)
		return
	}
	utils.Success("", res.Msg, c)
}
